Examples¶
In [1]:
from remez import *
from visualization import *
import pandas as pd
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
Single function usage¶
In [2]:
fx = "np.arctan(np.sqrt(3 + x**3) - np.exp(1 + x))"
g = "(np.sqrt(3 + x**3) - np.exp(1 + x))"
g_prime = "((3 * x**2) / (2 * np.sqrt(3 + x**3)) - np.exp(1 + x))"
fx_der = f"({g_prime}) / (1 + {g}**2)"
interval = [np.sqrt(2), np.pi**2]
n = 5
px, xn, history = remez(fx, fx_der, interval, n)
visualization(fx, px, xn, history, interval, n)
f(x) = np.arctan(np.sqrt(3 + x**3) - np.exp(1 + x)), interval = [1.4142135623730951, 9.869604401089358] Polynomial degree = 5 Pn(x): - 3.955756933047265e-05 * x**5 + 0.0012947712130833584 * x**4 - 0.01654139703555944 * x**3 + 0.10351664953941357 * x**2 - 0.32051562487328494 * x - 1.1703528319321932 xn points: [1.41421356 1.83693284 3.14845216 5.17561358 7.42752857 9.19850669 9.8696044 ] Converge iteration: 7 MAE of approximation: 0.0012079008992569307 MAE of interpolation: 0.0021889162615584823
In [3]:
fx = "np.sin(x)"
fx_der = "np.cos(x)"
interval = [-10, 10]
n = 10
px, xn, history = remez(fx, fx_der, interval, n)
visualization(fx, px, xn, history, interval, n)
f(x) = np.sin(x), interval = [-10, 10] Polynomial degree = 10 Pn(x): 6.407420434363546e-23 * x**10 + 1.6453249038659575e-07 * x**9 - 2.0501296218005414e-20 * x**8 - 3.9764054890758586e-05 * x**7 + 1.5820289608296249e-18 * x**6 + 0.0031818236931100714 * x**5 - 1.0025210470445e-17 * x**4 - 0.0922407606343639 * x**3 - 8.904546096582622e-16 * x**2 + 0.6882375433917891 * x + 1.7319479184152442e-14 xn points: [-10. -9.52836569 -8.19876035 -6.22807034 -3.86512566 -1.30745184 1.30745184 3.86512566 6.22807034 8.19876035 9.52836569 10. ] Converge iteration: 13 MAE of approximation: 0.2599467004604461 MAE of interpolation: 0.37372945033890925
In [4]:
fx = "np.abs(np.sin(x))"
fx_der = "np.sign(np.sin(x)) * np.cos(x)"
interval = [0, 3]
n = 10
px, xn, history = remez(fx, fx_der, interval, n)
visualization(fx, px, xn, history, interval, n)
f(x) = np.abs(np.sin(x)), interval = [0, 3] Polynomial degree = 10 Pn(x): - 2.6041641511055603e-07 * x**10 + 4.090815781454296e-06 * x**9 - 4.157868757727268e-06 * x**8 - 0.00019000590615703394 * x**7 - 1.124543122012178e-05 * x**6 + 0.008343191246311606 * x**5 - 5.4638087840026595e-06 * x**4 - 0.16666488277893782 * x**3 - 3.0059822135403053e-07 * x**2 + 1.0000000198265397 * x - 2.1640269330467054e-10 xn points: [0. 0.05354876 0.21047198 0.45989084 0.78460359 1.16233502 1.56726832 1.97167627 2.34749089 2.66726756 2.90189731 3. ] Converge iteration: 7 MAE of approximation: 2.1640367275921335e-10 MAE of interpolation: 3.936732029553218e-10
In [5]:
fx1 = "np.sin(x)"
fx2 = "-np.sin(x)"
fx_der1 = "np.cos(x)"
fx_der2 = "-np.cos(x)"
interval = [-10, 10]
n = 10
px1, xn1, history1 = remez(fx1, fx_der1, interval, n)
px2, xn2, history2 = remez(fx2, fx_der2, interval, n)
# xn1 == xn2
# history1 == history2
fx = "np.abs(np.sin(x))"
px = f"np.piecewise(x, [np.sin(x) >= 0, (np.sin(x) < 0)], [{px1}, {px2}])"
visualization(fx, px, xn1, history1, interval, n, compare_interpolation=True)
f(x) = np.abs(np.sin(x)), interval = [-10, 10] Polynomial degree = 10 Pn(x): np.piecewise(x, [np.sin(x) >= 0, (np.sin(x) < 0)], [6.407420434363546e-23 * x**10 + 1.6453249038659575e-07 * x**9 - 2.0501296218005414e-20 * x**8 - 3.9764054890758586e-05 * x**7 + 1.5820289608296249e-18 * x**6 + 0.0031818236931100714 * x**5 - 1.0025210470445e-17 * x**4 - 0.0922407606343639 * x**3 - 8.904546096582622e-16 * x**2 + 0.6882375433917891 * x + 1.7319479184152442e-14, - 6.407420434363546e-23 * x**10 - 1.6453249038659575e-07 * x**9 + 2.0501296218005414e-20 * x**8 + 3.9764054890758586e-05 * x**7 - 1.5820289608296249e-18 * x**6 - 0.0031818236931100714 * x**5 + 1.0025210470445e-17 * x**4 + 0.0922407606343639 * x**3 + 8.904546096582622e-16 * x**2 - 0.6882375433917891 * x - 1.7319479184152442e-14]) xn points: [-10. -9.52836569 -8.19876035 -6.22807034 -3.86512566 -1.30745184 1.30745184 3.86512566 6.22807034 8.19876035 9.52836569 10. ] Converge iteration: 13 MAE of approximation: 0.2599467004604461 MAE of interpolation: 0.9198614658691844
In [6]:
fx = "np.piecewise(x, [x < 0, (x >= 0) & (x <= 2), x > 2], [lambda x: x**2, lambda x: x + 1, np.sin])"
fx_der = "np.piecewise(x, [x < 0, (x >= 0) & (x <= 2), x > 2], [lambda x: 2 * x, 1, np.cos])"
interval = [-3, 5]
n = 15
px, xn, history = remez(fx, fx_der, interval, n)
visualization(fx, px, xn, history, interval, n)
f(x) = np.piecewise(x, [x < 0, (x >= 0) & (x <= 2), x > 2], [lambda x: x**2, lambda x: x + 1, np.sin]), interval = [-3, 5] Polynomial degree = 15 Pn(x): - 3.0476781469839864e-09 * x**15 - 2.8555206317755127e-07 * x**14 + 4.591585509723426e-06 * x**13 - 9.167078961250668e-06 * x**12 - 0.00015078529781879918 * x**11 + 0.0005725252066228006 * x**10 + 0.002132562337285741 * x**9 - 0.010045947899489453 * x**8 - 0.018589448071827566 * x**7 + 0.0872691674876504 * x**6 + 0.12659221011160046 * x**5 - 0.40150792018637294 * x**4 - 0.7592763866710046 * x**3 + 1.2497608678289127 * x**2 + 1.1414305084966663 * x + 0.5669558632090834 xn points: [-3. -2.92448242 -2.70480454 -2.36242476 -1.93657102 -1.49184043 -1.13051067 -0.98559781 0.90073722 2.9677204 3.11650621 3.48492005 3.93466818 4.3626498 4.70533835 4.92468226 5. ] Converge iteration: 50 MAE of approximation: 1.5634692716080894 MAE of interpolation: 1.8112270478784378
Pipeline¶
In [7]:
# set some hyper-parameter
interval = [-1, 1]
degree = 40
half = degree // 2
func_dict = {
r"$e^x$": [("np.exp(x)", "np.exp(x)", 2 * i + 1) for i in range(half)],
r"$e^{1+x^2}$": [("np.exp(1 + x**2)", "2*x*np.exp(1+x**2)", 2 * i + 1) for i in range(half)],
r"$\ln{(1+x^2)}$": [("np.log(1 + x**2)", "2*x/(1+x**2)", 2 * i + 1) for i in range(half)],
r"$\sqrt{1+x^2}$": [("np.sqrt(1 + x**2)", "x/np.sqrt(1+x**2)", 2 * i + 1) for i in range(half)],
r"$\frac{1}{1+x^2}$": [
("(1 + x**2)**-1", "-2 * x * (1 + x**2)**-2", 2 * i + 1) for i in range(half)
],
}
In [8]:
df = pd.DataFrame([2 * i + 1 for i in range(half)], columns=["n"])
df.set_index(keys="n", inplace=True)
for func_name, function in func_dict.items():
store = []
history_error = np.inf
for fx, fx_der, n in function:
px, xn, history = remez(fx, fx_der, interval, n)
max_interval_error = visualization_pipeline(fx, px, xn, history, interval, n, history_error)
if max_interval_error is not None:
store.append((n, max_interval_error))
history_error = max_interval_error
else:
y = pd.DataFrame(
[j[1] for j in store], columns=[func_name], index=[j[0] for j in store]
)
df = pd.merge(df, y, left_index=True, right_index=True, how="left")
break
f(x) = np.exp(x), interval = [-1, 1] Polynomial degree = 1 Pn(x): 1.1752011936438014 * x + 1.2642790490197413 xn points: [-1. 0.16143936 1. ] Converge iteration: 2 MAE of approximation: 0.2788015857955024 MAE of interpolation: 0.3722483506650818
f(x) = np.exp(x), interval = [-1, 1] Polynomial degree = 3 Pn(x): 0.17953348361616284 * x**3 + 0.5429727883818615 * x**2 + 0.9956677100276385 * x + 0.9945794763246946 xn points: [-1. -0.68223286 0.04954372 0.73170678 1. ] Converge iteration: 10 MAE of approximation: 0.005528370108687675 MAE of interpolation: 0.006656866235436709
f(x) = np.exp(x), interval = [-1, 1] Polynomial degree = 5 Pn(x): 0.008738191001535804 * x**5 + 0.04379369637407595 * x**4 + 0.1664246561337558 * x**3 + 0.49919698263496903 * x**2 + 1.0000383465085099 * x + 1.0000447502942726 xn points: [-1. -0.860197 -0.48239233 0.02369355 0.51792608 0.8720372 1. ] Converge iteration: 5 MAE of approximation: 4.5205511926216246e-05 MAE of interpolation: 5.179584768422174e-05
f(x) = np.exp(x), interval = [-1, 1] Polynomial degree = 7 Pn(x): 0.00020540802649050407 * x**7 + 0.0014392723790619436 * x**6 + 0.008327356909716574 * x**5 + 0.04163501496769684 * x**4 + 0.16666860522273672 * x**3 + 0.5000063462450856 * x**2 + 0.9999998234848574 * x + 0.9999998013981222 xn points: [-1. -0.92189579 -0.70029889 -0.37097185 0.01384577 0.39460855 0.71414566 0.92595162 1. ] Converge iteration: 11 MAE of approximation: 1.9982527765805003e-07 MAE of interpolation: 2.224393229610655e-07
f(x) = np.exp(x), interval = [-1, 1] Polynomial degree = 9 Pn(x): 2.831819307838153e-06 * x**9 + 2.549918543906719e-05 * x**8 + 0.00019832833996316233 * x**7 + 0.001388275963657203 * x**6 + 0.008333374802244744 * x**5 + 0.041666886016745786 * x**4 + 0.16666665818280604 * x**3 + 0.49999997254821943 * x**2 + 1.0000000004994796 * x + 1.0000000005494574 xn points: [-1. -0.95020991 -0.80594349 -0.5819317 -0.3008731 0.00907121 0.31728375 0.59380785 0.81221331 0.95194303 1. ] Converge iteration: 20 MAE of approximation: 5.517248879982617e-10 MAE of interpolation: 6.027107701811474e-10
f(x) = np.exp(x), interval = [-1, 1] Polynomial degree = 11 Pn(x): 2.561995535192282e-08 * x**11 + 2.8190179028409166e-07 * x**10 + 2.754958672734437e-06 * x**9 + 2.4794443049258586e-05 * x**8 + 0.00019841320798506375 * x**7 + 0.0013888925996554246 * x**6 + 0.008333333168188317 * x**5 + 0.04166666579607343 * x**4 + 0.1666666666899577 * x**3 + 0.5000000000746724 * x**2 + 0.9999999999990423 * x + 0.9999999999989624 xn points: [-1. -0.96550556 -0.86446038 -0.70395441 -0.49526455 -0.25288331 0.00639971 0.26482165 0.50486985 0.71035491 0.86766177 0.96636289 1. ] Converge iteration: 8 MAE of approximation: 1.0407230632836217e-12 MAE of interpolation: 1.120881165661558e-12
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 1 Pn(x): 0.0 * x + 5.0536689636948475 xn points: [-1.000000e+00 6.123234e-17 1.000000e+00] Converge iteration: 1 MAE of approximation: 2.335387135235803 MAE of interpolation: 2.907367028592586
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 3 Pn(x): 0.0 * x**3 + 4.670774270471606 * x**2 + 2.4303249480189244 xn points: [-1.00000000e+00 -7.35747822e-01 -2.31144126e-54 7.35747822e-01 1.00000000e+00] Converge iteration: 2 MAE of approximation: 0.28795688044012024 MAE of interpolation: 0.3365100679975299
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 5 Pn(x): - 4.196614930524684e-15 * x**5 + 2.2997403935142002 * x**4 + 5.285740251788736e-15 * x**3 + 2.3234312053486357 * x**2 - 1.0891253212640522e-15 * x + 2.742083164263429 xn points: [-1.00000000e+00 -8.74855034e-01 -5.15516668e-01 4.23832297e-17 5.15516668e-01 8.74855034e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 0.023801335804385815 MAE of interpolation: 0.026817341406789375
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 7 Pn(x): - 8.531482125457164e-15 * x**7 + 0.761055002578163 * x**6 + 1.7371043166070163e-14 * x**5 + 1.1463076373076815 * x**4 - 1.0941057546560405e-14 * x**3 + 2.763411630585761 * x**2 + 2.101496505947406e-15 * x + 2.716800931428885 xn points: [-1.00000000e+00 -9.27237104e-01 -7.15870878e-01 -3.90765952e-01 -5.44905272e-14 3.90765952e-01 7.15870878e-01 9.27237104e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 0.001480897030161188 MAE of interpolation: 0.0016309882409331067
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 9 Pn(x): - 1.8576673434424237e-14 * x**9 + 0.1894764600294218 * x**8 + 3.816596712822438e-14 * x**7 + 0.37973893866440733 * x**6 - 2.6295884877665623e-14 * x**5 + 1.3867028246573057 * x**4 + 6.605546818413865e-15 * x**3 + 2.714708376901231 * x**2 + 1.0104436545161238e-16 * x + 2.718355663568664 xn points: [-1.00000000e+00 -9.52571904e-01 -8.13661250e-01 -5.94142554e-01 -3.13614438e-01 5.82954050e-14 3.13614438e-01 5.94142554e-01 8.13661250e-01 9.52571904e-01 1.00000000e+00] Converge iteration: 9 MAE of approximation: 7.383510962100104e-05 MAE of interpolation: 8.006638390956056e-05
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 11 Pn(x): - 1.2637095019434694e-13 * x**11 + 0.03779425145731227 * x**10 + 3.2551019341089346e-13 * x**9 + 0.09459776020045337 * x**8 - 3.028469423611733e-13 * x**7 + 0.4632005887453589 * x**6 + 1.2664520428159409e-13 * x**5 + 1.3566838557908256 * x**4 - 2.5181172412223984e-14 * x**3 + 2.7184978142776557 * x**2 + 2.2436672752566876e-15 * x + 2.718278757969977 xn points: [-1.00000000e+00 -9.66700708e-01 -8.68607230e-01 -7.11298174e-01 -5.04419151e-01 -2.61652182e-01 6.17608903e-12 2.61652182e-01 5.04419151e-01 7.11298174e-01 8.68607230e-01 9.66700708e-01 1.00000000e+00] Converge iteration: 11 MAE of approximation: 3.0704890683352914e-06 MAE of interpolation: 3.2924067836503923e-06
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 13 Pn(x): 3.056873973183001e-13 * x**13 + 0.0062873630193664275 * x**12 - 1.0175055719116685e-12 * x**11 + 0.01887609060141464 * x**10 + 1.3434231849399685e-12 * x**9 + 0.11595785228108091 * x**8 - 8.795644954201994e-13 * x**7 + 0.45207492192182774 * x**6 + 2.86378784317819e-13 * x**5 + 1.3593065406526135 * x**4 - 4.066692432121112e-14 * x**3 + 2.718271282984192 * x**2 + 2.2476250769915637e-15 * x + 2.718281937964599 xn points: [-1.00000000e+00 -9.75362635e-01 -9.02490777e-01 -7.84544389e-01 -6.26871900e-01 -4.36992806e-01 -2.24381140e-01 -1.63395492e-10 2.24381140e-01 4.36992806e-01 6.26871900e-01 7.84544389e-01 9.02490777e-01 9.75362635e-01 1.00000000e+00] Converge iteration: 11 MAE of approximation: 1.0950555662248007e-07 MAE of interpolation: 1.1642481823059825e-07
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 15 Pn(x): 9.211329471416461e-14 * x**15 + 0.000896972471376077 * x**14 - 2.3943593184030647e-13 * x**13 + 0.003140958064854693 * x**12 + 4.787838474825296e-13 * x**11 + 0.023213780597657774 * x**10 - 7.842399002237738e-13 * x**9 + 0.1129910168253221 * x**8 + 6.981460662452725e-13 * x**7 + 0.4531173042351086 * x**6 - 2.9452436465679573e-13 * x**5 + 1.359131978184809 * x**4 + 5.26056964293341e-14 * x**3 + 2.7182822600924768 * x**2 - 3.448708150424869e-15 * x + 2.71828182504066 xn points: [-1.00000000e+00 -9.81048507e-01 -9.24830345e-01 -8.33258626e-01 -7.09548782e-01 -5.58210954e-01 -3.84923863e-01 -1.96371030e-01 3.12818765e-09 1.96371034e-01 3.84923869e-01 5.58210962e-01 7.09548788e-01 8.33258632e-01 9.24830348e-01 9.81048506e-01 1.00000000e+00] Converge iteration: 4 MAE of approximation: 3.418385574605054e-09 MAE of interpolation: 3.6102312250818613e-09
f(x) = np.exp(1 + x**2), interval = [-1, 1] Polynomial degree = 17 Pn(x): - 7.772720377856312e-14 * x**17 + 0.00011200498735493317 * x**16 + 2.1331139099094143e-12 * x**15 + 0.0004481752642550798 * x**14 - 6.497943998900757e-12 * x**13 + 0.0038717114241043757 * x**12 + 7.783456401599229e-12 * x**11 + 0.022594010998406223 * x**10 - 4.166469139676638e-12 * x**9 + 0.1132823318750504 * x**8 + 7.489423221286284e-13 * x**7 + 0.45304290739133346 * x**6 + 1.2472436275203262e-13 * x**5 + 1.3591413150853418 * x**4 - 5.114322080563056e-14 * x**3 + 2.718281813256007 * x**2 + 3.0465667722847888e-15 * x + 2.71828182855392 xn points: [-1.00000000e+00 -9.84974491e-01 -9.40308337e-01 -8.67233914e-01 -7.67803442e-01 -6.44874215e-01 -5.02065074e-01 -3.43677622e-01 -1.74570393e-01 -2.26671028e-07 1.74569896e-01 3.43677380e-01 5.02065060e-01 6.44874142e-01 7.67803275e-01 8.67233796e-01 9.40308395e-01 9.84974538e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 9.487788332762648e-11 MAE of interpolation: 9.966516500981015e-11
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 1 Pn(x): 0.0 * x + 0.34657359027997264 xn points: [-1.000000e+00 6.123234e-17 1.000000e+00] Converge iteration: 1 MAE of approximation: 0.34657359027997264 MAE of interpolation: 0.4054398565394094
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 3 Pn(x): 3.742613741236208e-17 * x**3 + 0.6931471805599453 * x**2 - 3.742613741236208e-17 * x + 0.02983005057080475 xn points: [-1.00000000e+00 -6.65353323e-01 -1.52459644e-16 6.65353323e-01 1.00000000e+00] Converge iteration: 4 MAE of approximation: 0.02983005057080479 MAE of interpolation: 0.03715733785422253
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 5 Pn(x): - 4.288249267200274e-16 * x**5 - 0.23903071905447876 * x**4 + 6.555363082723146e-16 * x**3 + 0.9253299382140014 * x**2 - 2.267113815522872e-16 * x + 0.0034239807002114328 xn points: [-1.00000000e+00 -8.47389692e-01 -4.66388920e-01 1.91061398e-15 4.66388920e-01 8.47389692e-01 1.00000000e+00] Converge iteration: 26 MAE of approximation: 0.0034239807002112155 MAE of interpolation: 0.0043704279899505405
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 7 Pn(x): 6.107196218576557e-16 * x**7 + 0.10968964204025553 * x**6 - 1.1522177835984662e-15 * x**5 - 0.40003527948424045 * x**4 + 6.553988510784317e-16 * x**3 + 0.9834928180039302 * x**2 - 1.1390068933762122e-16 * x + 0.0004416160547087127 xn points: [-1.00000000e+00 -9.14837189e-01 -6.82406871e-01 -3.58761500e-01 -5.00887895e-15 3.58761500e-01 6.82406871e-01 9.14837189e-01 1.00000000e+00] Converge iteration: 15 MAE of approximation: 0.00044161605470871557 MAE of interpolation: 0.0005716939749009445
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 9 Pn(x): 2.26817687434388e-15 * x**9 - 0.056571767549596204 * x**8 - 6.229428963934401e-15 * x**7 + 0.22089154018223675 * x**6 + 6.265121890612632e-15 * x**5 - 0.4678347621711902 * x**4 - 2.6903398115594245e-15 * x**3 + 0.9965407419079033 * x**2 + 3.864700105373138e-16 * x + 6.07140952956754e-05 xn points: [-1.00000000e+00 -9.46109986e-01 -7.93203646e-01 -5.64900285e-01 -2.91651014e-01 1.63074810e-15 2.91651014e-01 5.64900285e-01 7.93203646e-01 9.46109986e-01 1.00000000e+00] Converge iteration: 14 MAE of approximation: 6.0714095296066084e-05 MAE of interpolation: 7.931892720005134e-05
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 11 Pn(x): 4.392201272447959e-15 * x**11 + 0.03110401638762641 * x**10 + 1.205340079969072e-15 * x**9 - 0.1332198628951595 * x**8 - 1.8152805371582804e-14 * x**7 + 0.28670655112727345 * x**6 + 1.7186917293271537e-14 * x**5 - 0.49074311001998766 * x**4 - 4.934637865321255e-15 * x**3 + 0.9992995859601927 * x**2 + 3.029845912154911e-16 * x + 8.691195709201632e-06 xn points: [-1.00000000e+00 -9.62954102e-01 -8.55768364e-01 -6.89586971e-01 -4.80497896e-01 -2.45777340e-01 -2.86630562e-14 2.45777340e-01 4.80497896e-01 6.89586971e-01 8.55768364e-01 9.62954102e-01 1.00000000e+00] Converge iteration: 15 MAE of approximation: 8.691195709453758e-06 MAE of interpolation: 1.1426054180434962e-05
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 13 Pn(x): 9.662815787063055e-14 * x**13 - 0.017807705778224107 * x**12 - 3.1454027866755415e-13 * x**11 + 0.08387235973231486 * x**10 + 3.9330159744614026e-13 * x**9 - 0.19168343414510491 * x**8 - 2.3823680289310233e-13 * x**7 + 0.31643670157573567 * x**6 + 7.277162474607839e-14 * x**5 - 0.4975348607042265 * x**4 - 1.0401996312996635e-14 * x**3 + 0.9998615612144035 * x**2 + 4.77697810803915e-16 * x + 1.2793325232854612e-06 xn points: [-1.00000000e+00 -9.73011700e-01 -8.94063892e-01 -7.68974263e-01 -6.06616989e-01 -4.17590216e-01 -2.12415390e-01 -9.97362690e-13 2.12415390e-01 4.17590216e-01 6.06616989e-01 7.68974263e-01 8.94063892e-01 9.73011700e-01 1.00000000e+00] Converge iteration: 10 MAE of approximation: 1.2793325235849196e-06 MAE of interpolation: 1.6894371451132126e-06
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 15 Pn(x): - 6.304286143701821e-13 * x**15 + 0.010484100062349153 * x**14 + 2.29702788164831e-12 * x**13 - 0.05410854403341646 * x**12 - 3.3473611883848787e-12 * x**11 + 0.13314632126738815 * x**10 + 2.5039688346095486e-12 * x**9 - 0.22475569200191395 * x**8 - 1.0323022382252423e-12 * x**7 + 0.32778786235209656 * x**6 + 2.3625144736898884e-13 * x**5 - 0.49937998921177107 * x**4 - 2.850249367041547e-14 * x**3 + 0.9999731221252129 * x**2 + 1.3463710238712959e-15 * x + 1.922024369801525e-07 xn points: [-1.00000000e+00 -9.79480670e-01 -9.19051722e-01 -8.22010313e-01 -6.93536800e-01 -5.40176302e-01 -3.69069134e-01 -1.87049698e-01 -4.72596457e-12 1.87049698e-01 3.69069134e-01 5.40176302e-01 6.93536800e-01 8.22010313e-01 9.19051722e-01 9.79480670e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 1.922024370770714e-07 MAE of interpolation: 2.546364894842036e-07
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 17 Pn(x): 3.77065968900176e-13 * x**17 - 0.006299951025517598 * x**16 - 1.585886198211882e-12 * x**15 + 0.03544369159176338 * x**14 + 2.754703927585582e-12 * x**13 - 0.09421736734180997 * x**12 - 2.571454689716891e-12 * x**11 + 0.16663968217510416 * x**10 + 1.4101441723441994e-12 * x**9 - 0.2402091605032993 * x**8 - 4.657904126033783e-13 * x**7 + 0.3316461276973494 * x**6 + 8.971847340844505e-14 * x**5 - 0.49985075395461354 * x**4 - 8.752560520802493e-15 * x**3 + 0.9999948532607277 * x**2 + 2.5131881455144316e-16 * x + 2.933012047275681e-08 xn points: [-1.00000000e+00 -9.83880753e-01 -9.36201351e-01 -8.58957645e-01 -7.55340054e-01 -6.29510460e-01 -4.86261351e-01 -3.30565575e-01 -1.67107593e-01 9.26734234e-11 1.67107593e-01 3.30565574e-01 4.86261351e-01 6.29510460e-01 7.55340054e-01 8.58957645e-01 9.36201351e-01 9.83880753e-01 1.00000000e+00] Converge iteration: 12 MAE of approximation: 2.9330120665527204e-08 MAE of interpolation: 3.894831893258232e-08
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 19 Pn(x): 5.809160967018944e-12 * x**19 + 0.003845299682764316 * x**18 - 2.7212717306786316e-11 * x**17 - 0.02345535017551048 * x**16 + 5.375466900023595e-11 * x**15 + 0.06729455214736989 * x**14 - 5.8169580261885654e-11 * x**13 - 0.12605745471472102 * x**12 + 3.747844419626355e-11 * x**11 + 0.1851545696110989 * x**10 - 1.4619108626336506e-11 * x**9 - 0.24651796569517978 * x**8 + 3.3494085552169105e-12 * x**7 + 0.33284980617848486 * x**6 - 4.1161367093276717e-13 * x**5 - 0.49996530173290826 * x**4 + 2.1490461226041385e-14 * x**3 + 0.9999990252585469 * x**2 - 1.5331402015060399e-16 * x + 4.531263877346489e-09 xn points: [-1.00000000e+00 -9.87006616e-01 -9.48457424e-01 -8.85626552e-01 -8.00572807e-01 -6.96034617e-01 -5.75268865e-01 -4.41828003e-01 -2.99291684e-01 -1.51014761e-01 -1.21962098e-10 1.51014761e-01 2.99291684e-01 4.41828002e-01 5.75268864e-01 6.96034617e-01 8.00572808e-01 8.85626553e-01 9.48457424e-01 9.87006616e-01 1.00000000e+00] Converge iteration: 8 MAE of approximation: 4.5312639196382065e-09 MAE of interpolation: 6.027144868770166e-09
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 21 Pn(x): - 1.2753919270714506e-11 * x**21 - 0.002376177576487972 * x**20 + 6.234977742512375e-11 * x**19 + 0.015633528428828185 * x**18 - 1.278285906950387e-10 * x**17 - 0.04828524072984512 * x**16 + 1.4185562697371567e-10 * x**15 + 0.09621483905066705 * x**14 - 9.107001192622988e-11 * x**13 - 0.14638317917234292 * x**12 + 3.264786144660188e-11 * x**11 + 0.19397979545937036 * x**10 - 4.955467338608279e-12 * x**9 - 0.24884535723022858 * x**8 - 5.141988805392598e-13 * x**7 + 0.3332013114907113 * x**6 + 3.069637359212609e-13 * x**5 - 0.49999215761907473 * x**4 - 3.952693522414716e-14 * x**3 + 0.9999998170442297 * x**2 + 1.4854649922124008e-15 * x + 7.070590091061891e-10 xn points: [-1.00000000e+00 -9.89305768e-01 -9.57509451e-01 -9.05460630e-01 -8.34541916e-01 -7.46615465e-01 -6.43941522e-01 -5.29064034e-01 -4.04664146e-01 -2.73397189e-01 -1.37753253e-01 4.05962873e-09 1.37753254e-01 2.73397183e-01 4.04664146e-01 5.29064034e-01 6.43941521e-01 7.46615464e-01 8.34541914e-01 9.05460629e-01 9.57509451e-01 9.89305768e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 7.070590779534314e-10 MAE of interpolation: 9.41526344021092e-10
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 23 Pn(x): 3.011252245722092e-11 * x**23 + 0.0014830714509293874 * x**22 - 2.0339172667195548e-10 * x**21 - 0.01047475654674076 * x**20 + 5.90215327938814e-10 * x**19 + 0.03471456318314662 * x**18 - 9.651215442116338e-10 * x**17 - 0.07366567809281964 * x**16 + 9.790441551505466e-10 * x**15 + 0.11715252349213139 * x**14 - 6.384895327225179e-10 * x**13 - 0.1574629008398488 * x**12 + 2.6798608193442936e-10 * x**11 + 0.19773853566212723 * x**10 - 7.03195752745376e-11 * x**9 - 0.24963857493418398 * x**8 + 1.0788685120332886e-11 * x**7 + 0.33329869976287263 * x**6 - 8.523812712948012e-13 * x**5 - 0.49999826849309487 * x**4 + 2.8485249533352686e-14 * x**3 + 0.9999999659154262 * x**2 - 4.976989376331384e-16 * x + 1.1124240607857104e-10 xn points: [-1.00000000e+00 -9.91045483e-01 -9.64379521e-01 -9.20589359e-01 -8.60635607e-01 -7.85822933e-01 -6.97756372e-01 -5.98279763e-01 -4.89394764e-01 -3.73164033e-01 -2.51609774e-01 -1.26635383e-01 -2.64054799e-08 1.26635369e-01 2.51609772e-01 3.73164040e-01 4.89394782e-01 5.98279759e-01 6.97756378e-01 7.85822947e-01 8.60635609e-01 9.20589352e-01 9.64379520e-01 9.91045483e-01 1.00000000e+00] Converge iteration: 49 MAE of approximation: 1.1124257071060129e-10 MAE of interpolation: 1.4823181204153967e-10
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 25 Pn(x): - 1.248869582443712e-10 * x**25 - 0.0009333090178782479 * x**24 + 8.496309282381641e-10 * x**23 + 0.007045971635222644 * x**22 - 2.558297355509612e-09 * x**21 - 0.024971118287693814 * x**20 + 4.488989292575467e-09 * x**19 + 0.05639789786220347 * x**18 - 5.08469280459261e-09 * x**17 - 0.09421405843056589 * x**16 + 3.889842240502666e-09 * x**15 + 0.12999968945324292 * x**14 - 2.0424222629306275e-09 * x**13 - 0.16281378672995098 * x**12 + 7.329436117069447e-10 * x**11 + 0.1992031810143939 * x**10 - 1.75630073477575e-10 * x**9 - 0.24989220364726428 * x**8 + 2.681278696641196e-11 * x**7 + 0.3333245481490952 * x**6 - 2.3929383295951106e-12 * x**5 - 0.4999996251661286 * x**4 + 1.0493331138820631e-13 * x**3 + 0.9999999936900221 * x**2 - 1.4002166506919662e-15 * x + 1.7623279276971207e-11 xn points: [-1.00000000e+00 -9.92393351e-01 -9.69714062e-01 -9.32380337e-01 -8.81079856e-01 -8.16750154e-01 -7.40558226e-01 -6.53859855e-01 -5.58160383e-01 -4.55050683e-01 -3.46148073e-01 -2.33027361e-01 -1.17179658e-01 -6.70509458e-08 1.17179642e-01 2.33027356e-01 3.46148187e-01 4.55050820e-01 5.58160410e-01 6.53859795e-01 7.40558191e-01 8.16750244e-01 8.81079899e-01 9.32380385e-01 9.69714109e-01 9.92393354e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 1.7623680292899735e-11 MAE of interpolation: 2.3490957470244725e-11
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 27 Pn(x): - 9.82518315429155e-10 * x**27 + 0.0005914221835729312 * x**26 + 6.7913671192933755e-09 * x**25 - 0.004753997227615573 * x**24 - 2.0753642104656122e-08 * x**23 + 0.017956833046660438 * x**22 + 3.690109203788863e-08 * x**21 - 0.04310051049123108 * x**20 - 4.227168207045087e-08 * x**19 + 0.07581043046030461 * x**18 + 3.262490174689106e-08 * x**17 - 0.1082300601524316 * x**16 - 1.7226121575732086e-08 * x**15 + 0.1369372696112647 * x**14 + 6.183794123251214e-09 * x**13 - 0.16516039817550643 * x**12 - 1.4654524059143613e-09 * x**11 + 0.19973408836034126 * x**10 + 2.1426964255786272e-10 * x**9 - 0.24996914351934746 * x**8 - 1.6269430416151293e-11 * x**7 + 0.3333311678388693 * x**6 + 2.2067985331764045e-13 * x**5 - 0.49999992021312745 * x**4 + 4.1982673102269303e-14 * x**3 + 0.999999998838192 * x**2 - 1.4298098184578395e-15 * x + 2.8084336432053507e-12 xn points: [-1.00000000e+00 -9.93458593e-01 -9.73937469e-01 -9.41741870e-01 -8.97377106e-01 -8.41531674e-01 -7.75072923e-01 -6.99015496e-01 -6.14500079e-01 -5.22760258e-01 -4.25075102e-01 -3.22735354e-01 -2.16992207e-01 -1.09039475e-01 -6.04794976e-07 1.09038960e-01 2.16993266e-01 3.22736323e-01 4.25075480e-01 5.22759738e-01 6.14499319e-01 6.99015041e-01 7.75073195e-01 8.41532524e-01 8.97377195e-01 9.41741965e-01 9.73937712e-01 9.93458628e-01 1.00000000e+00] Converge iteration: 41 MAE of approximation: 2.808864252301646e-12 MAE of interpolation: 3.743563401978345e-12
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 29 Pn(x): - 1.2221048888903486e-09 * x**29 - 0.0003769918908548567 * x**28 + 9.580662134813919e-09 * x**27 + 0.00321527207407454 * x**26 - 3.3351565324906873e-08 * x**25 - 0.01290258545316233 * x**24 + 6.805134626766098e-08 * x**23 + 0.0328486838082843 * x**22 - 9.045330216243888e-08 * x**21 - 0.06088445643806777 * x**20 + 8.231988250703938e-08 * x**19 + 0.09038181938583414 * x**18 - 5.2480757198589816e-08 * x**17 - 0.11659885979918723 * x**16 + 2.3579508655604625e-08 * x**15 + 0.14031898840809645 * x**14 - 7.4139980711940345e-09 * x**13 - 0.16611134975673383 * x**12 + 1.5994633339547674e-09 * x**11 + 0.19991530538703664 * x**10 - 2.284627932719449e-10 * x**9 - 0.2499914742780888 * x**8 + 2.0306687891342317e-11 * x**7 + 0.3333328125868018 * x**6 - 1.0021173271698111e-12 * x**5 - 0.49999998326206574 * x**4 + 2.3226882251427813e-14 * x**3 + 0.9999999997870782 * x**2 - 2.5722820993900445e-16 * x + 4.4982718597309947e-13 xn points: [-1.00000000e+00 -9.94315714e-01 -9.77336692e-01 -9.49296574e-01 -9.10562951e-01 -8.61673545e-01 -8.03252956e-01 -7.36110726e-01 -6.61086189e-01 -5.79172739e-01 -4.91355281e-01 -3.98714070e-01 -3.02258956e-01 -2.03021316e-01 -1.01956275e-01 7.60763082e-07 1.01957363e-01 2.03017033e-01 3.02253213e-01 3.98713472e-01 4.91355115e-01 5.79170551e-01 6.61086366e-01 7.36115301e-01 8.03256172e-01 8.61674865e-01 9.10564103e-01 9.49297167e-01 9.77335588e-01 9.94315332e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 4.4997339188057595e-13 MAE of interpolation: 6.000304419995217e-13
f(x) = np.log(1 + x**2), interval = [-1, 1] Polynomial degree = 31 Pn(x): 1.4456315046247388e-08 * x**31 + 0.0002415188774762106 * x**30 - 1.186194597238394e-07 * x**29 - 0.002178669637520026 * x**28 + 4.4066992563468373e-07 * x**27 + 0.00926071972693731 * x**26 - 9.798327673857753e-07 * x**25 - 0.024954712228353427 * x**24 + 1.452231887913479e-06 * x**23 + 0.048731884182381856 * x**22 - 1.51197813635358e-06 * x**21 - 0.07545137167324521 * x**20 + 1.1351003919667183e-06 * x**19 + 0.09991365200326531 * x**18 - 6.206535088237377e-07 * x**17 - 0.12108737778378341 * x**16 + 2.465830632668751e-07 * x**15 + 0.1418340110425087 * x**14 - 7.018132513431301e-08 * x**13 - 0.1664720640733357 * x**12 + 1.3915108787935077e-08 * x**11 + 0.1999740912801654 * x**10 - 1.8337976691466019e-09 * x**9 - 0.24999771534296522 * x**8 + 1.486845101943141e-10 * x**7 + 0.3333332107578889 * x**6 - 6.5010219380547345e-12 * x**5 - 0.4999999965326142 * x**4 + 1.1946422028116525e-13 * x**3 + 0.9999999999611391 * x**2 - 4.780231870096358e-16 * x + 7.235260722840063e-14 xn points: [-1.00000000e+00 -9.95012917e-01 -9.80116446e-01 -9.55467068e-01 -9.21390245e-01 -8.78226907e-01 -8.26546826e-01 -7.66882354e-01 -6.99975994e-01 -6.26541520e-01 -5.47418475e-01 -4.63364138e-01 -3.75338857e-01 -2.84192626e-01 -1.90741450e-01 -9.57235937e-02 2.84853154e-05 9.57581530e-02 1.90732427e-01 2.84206534e-01 3.75386292e-01 4.63369917e-01 5.47396210e-01 6.26533369e-01 6.99987925e-01 7.66888930e-01 8.26547246e-01 8.78227504e-01 9.21398424e-01 9.55470930e-01 9.80117215e-01 9.95012979e-01 1.00000000e+00] Converge iteration: 29 MAE of approximation: 7.271960811294775e-14 MAE of interpolation: 9.65868789842058e-14
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 1 Pn(x): 0.0 * x + 1.2071067811865475 xn points: [-1.000000e+00 6.123234e-17 1.000000e+00] Converge iteration: 1 MAE of approximation: 0.20710678118654768 MAE of interpolation: 0.22473224552750581
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 3 Pn(x): 1.3233204887153637e-16 * x**3 + 0.41421356237309515 * x**2 - 1.3233204887153637e-16 * x + 1.0088834764831844 xn points: [-1.00000000e+00 -6.76096721e-01 4.66993665e-17 6.76096721e-01 1.00000000e+00] Converge iteration: 2 MAE of approximation: 0.008883476483184438 MAE of interpolation: 0.010508030211765718
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 5 Pn(x): - 2.0715898467481443e-16 * x**5 - 0.07119874504686349 * x**4 + 2.2944830067996e-16 * x**3 + 0.4838846337261926 * x**2 - 2.2289316005145575e-17 * x + 1.000763836846883 xn points: [-1.00000000e+00 -8.50605143e-01 -4.72058892e-01 3.18988865e-15 4.72058892e-01 8.50605143e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 0.0007638368468831924 MAE of interpolation: 0.0009386363730088387
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 7 Pn(x): - 1.862668369863536e-15 * x**7 + 0.02447690883125937 * x**6 + 2.572677546264549e-15 * x**5 - 0.10725841841743858 * x**4 - 6.466769935875532e-16 * x**3 + 0.4969950719592744 * x**2 - 6.333218281345988e-17 * x + 1.0000820593549518 xn points: [-1.00000000e+00 -9.15982808e-01 -6.85559407e-01 -3.61822439e-01 8.83203217e-14 3.61822439e-01 6.85559407e-01 9.15982808e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 8.205935495175787e-05 MAE of interpolation: 0.00010308772270706257
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 9 Pn(x): 4.747945133869344e-15 * x**9 - 0.01051456292167535 * x**8 - 8.597186570501944e-15 * x**7 + 0.045190491214024756 * x**6 + 4.1483650535569266e-15 * x**5 - 0.11992762933102205 * x**4 + 3.522909418146213e-18 * x**3 + 0.4994455246834638 * x**2 - 3.0264652634247317e-16 * x + 1.000009869364152 xn points: [-1.00000000e+00 -9.46600612e-01 -7.94796900e-01 -5.67248927e-01 -2.93456858e-01 -9.54844028e-14 2.93456858e-01 5.67248927e-01 7.94796900e-01 9.46600612e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 9.869364152148563e-06 MAE of interpolation: 1.2577259388857343e-05
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 11 Pn(x): 5.252429784715738e-15 * x**11 + 0.005057156226039242 * x**10 - 2.2953023395423393e-14 * x**9 - 0.02299482438314468 * x**8 + 3.61257883922066e-14 * x**7 + 0.05592751286153399 * x**6 - 2.4681568698074738e-14 * x**5 - 0.1236748654808715 * x**4 + 6.68264379053085e-15 * x**3 + 0.49989858314953806 * x**2 - 4.2626987395505566e-16 * x + 1.00000127138838 xn points: [-1.00000000e+00 -9.63195285e-01 -8.56614857e-01 -6.91066885e-01 -4.82184378e-01 -2.46924351e-01 -4.12889653e-13 2.46924351e-01 4.82184378e-01 6.91066885e-01 8.56614857e-01 9.63195285e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 1.2713883799087e-06 MAE of interpolation: 1.636391490311695e-06
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 13 Pn(x): 3.0914227017426237e-13 * x**13 - 0.0026054414962579354 * x**12 - 1.0037797289154829e-12 * x**11 + 0.012785697061239519 * x**10 + 1.2464977190223907e-12 * x**9 - 0.03156862933686587 * x**8 - 7.357851355532687e-13 * x**7 + 0.060294803960652635 * x**6 + 2.0737178589905715e-13 * x**5 - 0.12467479204623037 * x**4 - 2.4199630605359042e-14 * x**3 + 0.49998158114449953 * x**2 + 7.527199784003598e-16 * x + 1.0000001715430284 xn points: [-1.00000000e+00 -9.73143044e-01 -8.94544562e-01 -7.69890275e-01 -6.07851742e-01 -4.18812741e-01 -2.13187070e-01 7.08345867e-12 2.13187070e-01 4.18812741e-01 6.07851742e-01 7.69890275e-01 8.94544562e-01 9.73143044e-01 1.00000000e+00] Converge iteration: 7 MAE of approximation: 1.7154302933697352e-07 MAE of interpolation: 2.223817137103623e-07
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 15 Pn(x): - 3.094958359455944e-13 * x**15 + 0.00140599223070487 * x**14 + 1.2294431360027777e-12 * x**13 - 0.007477425293548283 * x**12 - 1.963773319989225e-12 * x**11 + 0.019405023817992143 * x**10 + 1.6007422090331855e-12 * x**9 - 0.03601659258478321 * x**8 - 6.943855271506983e-13 * x**7 + 0.061823668907413816 * x**6 + 1.4974614141858373e-13 * x**5 - 0.12492377868372367 * x**4 - 1.2292642934878456e-14 * x**3 + 0.49999667397903946 * x**2 + 1.5839565849450113e-17 * x + 1.000000023930681 xn points: [-1.00000000e+00 -9.79557986e-01 -9.19341759e-01 -8.22590857e-01 -6.94391952e-01 -5.41173789e-01 -3.69973345e-01 -1.87592874e-01 -1.07323824e-10 1.87592874e-01 3.69973345e-01 5.41173788e-01 6.94391952e-01 8.22590857e-01 9.19341759e-01 9.79557986e-01 1.00000000e+00] Converge iteration: 12 MAE of approximation: 2.393068099237894e-08 MAE of interpolation: 3.118831126691646e-08
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 17 Pn(x): 6.95905075607342e-13 * x**17 - 0.000784486702975174 * x**16 - 2.578274526058353e-12 * x**15 + 0.004515903160972383 * x**14 + 3.760495597063666e-12 * x**13 - 0.012478443213758642 * x**12 - 2.708183188462119e-12 * x**11 + 0.023584717200944107 * x**10 + 9.590017744891587e-13 * x**9 - 0.03794703536353226 * x**8 - 1.1025400065082937e-13 * x**7 + 0.06230625435687519 * x**6 - 2.745664994939231e-14 * x**5 - 0.12498275613208476 * x**4 + 9.493780084728145e-15 * x**3 + 0.4999994022195209 * x**2 - 7.27862124201158e-16 * x + 1.0000000034235665 xn points: [-1.00000000e+00 -9.83929109e-01 -9.36385636e-01 -8.59337912e-01 -7.55930296e-01 -6.30263115e-01 -4.87061891e-01 -3.31248907e-01 -1.67504024e-01 8.37126840e-10 1.67504025e-01 3.31248908e-01 4.87061891e-01 6.30263114e-01 7.55930297e-01 8.59337912e-01 9.36385636e-01 9.83929108e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 3.4235669854609796e-09 MAE of interpolation: 4.479723259009916e-09
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 19 Pn(x): - 5.565403671333719e-12 * x**19 + 0.0004488896169698309 * x**18 + 2.6356238988920003e-11 * x**17 - 0.0027881262874902483 * x**16 - 5.250043000228369e-11 * x**15 + 0.008237944955459802 * x**14 + 5.7154920714891834e-11 * x**13 - 0.016201634925492956 * x**12 - 3.700833168898247e-11 * x**11 + 0.02575139228178108 * x**10 + 1.4558706443414405e-11 * x**9 - 0.038685988381362627 * x**8 - 3.4224725266455764e-12 * x**7 + 0.062447398908316826 * x**6 + 4.576009913250036e-13 * x**5 - 0.12499620677813231 * x**4 - 3.179505051063004e-14 * x**3 + 0.4999998929830457 * x**2 + 9.658012048401032e-16 * x + 1.0000000004995302 xn points: [-1.00000000e+00 -9.87038344e-01 -9.48579680e-01 -8.85883953e-01 -8.00985925e-01 -6.96590634e-01 -5.75915048e-01 -4.42472728e-01 -2.99818685e-01 -1.51312776e-01 -3.84114289e-09 1.51312770e-01 2.99818685e-01 4.42472729e-01 5.75915051e-01 6.96590637e-01 8.00985927e-01 8.85883958e-01 9.48579682e-01 9.87038344e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 4.995301949861641e-10 MAE of interpolation: 6.556020171188948e-10
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 21 Pn(x): - 1.041865610608156e-12 * x**21 - 0.0002619747104916132 * x**20 + 1.5601371115884536e-11 * x**19 + 0.001749059784761804 * x**18 - 6.130147477676279e-11 * x**17 - 0.00552793762076521 * x**16 + 1.1536628303635445e-10 * x**15 + 0.011430737437001645 * x**14 - 1.234755776115627e-10 * x**13 - 0.01844691718176166 * x**12 + 8.004942574511623e-11 * x**11 + 0.02672694529195355 * x**10 - 3.1822504271938235e-11 * x**9 - 0.03894347218487544 * x**8 + 7.570184301595802e-12 * x**7 + 0.06248632491771592 * x**6 - 1.0110944917343182e-12 * x**5 - 0.12499918441347858 * x**4 + 6.69227939555831e-14 * x**3 + 0.49999998090493486 * x**2 - 1.6702303004061753e-15 * x + 1.0000000000740497 xn points: [-1.00000000e+00 -9.89327441e-01 -9.57593573e-01 -9.05640199e-01 -8.34836687e-01 -7.47026414e-01 -6.44445960e-01 -5.29613460e-01 -4.05187298e-01 -2.73811146e-01 -1.37982822e-01 -2.42958868e-09 1.37982817e-01 2.73811145e-01 4.05187302e-01 5.29613451e-01 6.44445976e-01 7.47026417e-01 8.34836687e-01 9.05640200e-01 9.57593579e-01 9.89327443e-01 1.00000000e+00] Converge iteration: 25 MAE of approximation: 7.405032143026347e-11 MAE of interpolation: 9.740408479785856e-11
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 23 Pn(x): 4.584416958955044e-11 * x**23 + 0.00015533314825884483 * x**22 - 2.829091404808623e-10 * x**21 - 0.001110477792236561 * x**20 + 7.57184438533051e-10 * x**19 + 0.0037489504644903806 * x**18 - 1.151120261336619e-09 * x**17 - 0.00818917538536077 * x**16 + 1.0938230911797378e-09 * x**15 + 0.013627171653732778 * x**14 - 6.741024089555882e-10 * x**13 - 0.019609847179033975 * x**12 + 2.711801171269626e-10 * x**11 + 0.027121711166838595 * x**10 - 7.023924576793925e-11 * x**9 - 0.039026842099239276 * x**8 + 1.1396249430976633e-11 * x**7 + 0.06249656972333177 * x**6 - 1.1177037666092563e-12 * x**5 - 0.12499982793024042 * x**4 + 6.223192897693533e-14 * x**3 + 0.49999999660255395 * x**2 - 1.537481637318054e-15 * x + 1.0000000000111209 xn points: [-1.00000000e+00 -9.91060773e-01 -9.64439165e-01 -9.20718011e-01 -8.60850209e-01 -7.86129316e-01 -6.98146420e-01 -5.98728734e-01 -4.89860930e-01 -3.73592309e-01 -2.51940262e-01 -1.26815747e-01 -2.76352025e-08 1.26815943e-01 2.51940596e-01 3.73592668e-01 4.89861064e-01 5.98728643e-01 6.98146444e-01 7.86129431e-01 8.60850227e-01 9.20718092e-01 9.64439203e-01 9.91060746e-01 1.00000000e+00] Converge iteration: 8 MAE of approximation: 1.1121104037670193e-11 MAE of interpolation: 1.4651835300583116e-11
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 25 Pn(x): - 2.2599624757444486e-10 * x**25 - 9.330873741109067e-05 * x**24 + 1.3486794854461573e-09 * x**23 + 0.0007116453256273096 * x**22 - 3.50985948489178e-09 * x**21 - 0.002560617784824479 * x**20 + 5.225111396865177e-09 * x**19 + 0.0059187821436532066 * x**18 - 4.907474917236451e-09 * x**17 - 0.010246225718671391 * x**16 + 3.0279291876694457e-09 * x**15 + 0.01491383190094526 * x**14 - 1.2424458974612496e-09 * x**13 - 0.020146011521439428 * x**12 + 3.378723089815454e-10 * x**11 + 0.02726855402769027 * x**10 - 6.035638239475212e-11 * x**9 - 0.03905228737950546 * x**8 + 7.039031016486911e-12 * x**7 + 0.06249916498869348 * x**6 - 5.173511317285593e-13 * x**5 - 0.12499996427203028 * x**4 + 1.899456903557259e-14 * x**3 + 0.49999999939699097 * x**2 - 1.2385744139149707e-16 * x + 1.0000000000016882 xn points: [-1.00000000e+00 -9.92404579e-01 -9.69757824e-01 -9.32475411e-01 -8.81239266e-01 -8.16981413e-01 -7.40859678e-01 -6.54220313e-01 -5.58555429e-01 -4.55447338e-01 -3.46501739e-01 -2.33293979e-01 -1.17324170e-01 -5.71820096e-07 1.17323137e-01 2.33294134e-01 3.46502160e-01 4.55447562e-01 5.58556240e-01 6.54221505e-01 7.40860759e-01 8.16982186e-01 8.81238934e-01 9.32474598e-01 9.69757719e-01 9.92404620e-01 1.00000000e+00] Converge iteration: 12 MAE of approximation: 1.688649220454863e-12 MAE of interpolation: 2.227107387398064e-12
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 27 Pn(x): 1.0240748969807857e-09 * x**27 + 5.666447652640011e-05 * x**26 - 7.14146850391436e-09 * x**25 - 0.0004594580660188678 * x**24 + 2.2107418739164435e-08 * x**23 + 0.0017575435167964642 * x**22 - 3.999529722367996e-08 * x**21 - 0.004298976239005243 * x**20 + 4.6845123008113844e-08 * x**19 + 0.007780774903437561 * x**18 - 3.71777285797985e-08 * x**17 - 0.011591082619416817 * x**16 + 2.03336426614669e-08 * x**15 + 0.0155797726699886 * x**14 - 7.644163868443693e-09 * x**13 - 0.020371366841161063 * x**12 + 1.9357526126990154e-09 * x**11 + 0.027319566073356914 * x**10 - 3.170522491773278e-10 * x**9 - 0.03905968458324233 * x**8 + 3.130910063303052e-11 * x**7 + 0.06249980187070643 * x**6 - 1.6466567414013908e-12 * x**5 - 0.12499999268206755 * x**4 + 3.6357158862635224e-14 * x**3 + 0.49999999989319477 * x**2 - 2.944616254918849e-16 * x + 1.000000000000259 xn points: [-1.00000000e+00 -9.93466941e-01 -9.73971184e-01 -9.41814171e-01 -8.97500950e-01 -8.41710296e-01 -7.75305890e-01 -6.99299524e-01 -6.14824882e-01 -5.23105801e-01 -4.25415120e-01 -3.23034445e-01 -2.17217957e-01 -1.09151513e-01 9.66709997e-06 1.09160237e-01 2.17212272e-01 3.23019481e-01 4.25411153e-01 5.23109180e-01 6.14822375e-01 6.99299693e-01 7.75312418e-01 8.41710286e-01 8.97498047e-01 9.41812480e-01 9.73967934e-01 9.93466321e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 2.5912605394751154e-13 MAE of interpolation: 3.4150460237469815e-13
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 29 Pn(x): - 3.2071528028555376e-09 * x**29 - 3.472847401050807e-05 * x**28 + 2.3305690783620594e-08 * x**27 + 0.0002984228672709962 * x**26 - 7.588962548910875e-08 * x**25 - 0.0012104272597125868 * x**24 + 1.4607517091223484e-07 * x**23 + 0.0031303051470533577 * x**22 - 1.8459349974400335e-07 * x**21 - 0.005938781615397812 * x**20 + 1.6081155388596125e-07 * x**19 + 0.009124763786016139 * x**18 - 9.865543143694701e-08 * x**17 - 0.012363235914340912 * x**16 + 4.275828672854473e-08 * x**15 + 0.015891906901890487 * x**14 - 1.2931479500322993e-08 * x**13 - 0.02045917753949172 * x**12 + 2.6488490201581166e-09 * x**11 + 0.027336307772668617 * x**10 - 3.480060093111009e-10 * x**9 - 0.03906174876812147 * x**8 + 2.6616321760825098e-11 * x**7 + 0.062499954006698985 * x**6 - 9.843012802345186e-13 * x**5 - 0.12499999851863283 * x**4 + 1.160094902493734e-14 * x**3 + 0.49999999998112454 * x**2 + 3.059960555863601e-17 * x + 1.0000000000000395 xn points: [-1.00000000e+00 -9.94324497e-01 -9.77361188e-01 -9.49345535e-01 -9.10646288e-01 -8.61769503e-01 -8.03410950e-01 -7.36328280e-01 -6.61350408e-01 -5.79499637e-01 -4.91693696e-01 -3.99030004e-01 -3.02541812e-01 -2.03183763e-01 -1.02079177e-01 -6.75826964e-05 1.02024506e-01 2.03186373e-01 3.02479745e-01 3.98963849e-01 4.91620116e-01 5.79462726e-01 6.61339565e-01 7.36310793e-01 8.03424237e-01 8.61789799e-01 9.10657774e-01 9.49354066e-01 9.77367071e-01 9.94325559e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 4.04121180963557e-14 MAE of interpolation: 5.306866057708248e-14
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 31 Pn(x): - 3.267423950634232e-08 * x**31 + 2.145603408684661e-05 * x**30 + 2.556135294191194e-07 * x**29 - 0.00019481646665268766 * x**28 - 9.034481732543206e-07 * x**27 + 0.0008357038908463725 * x**26 + 1.906993964381688e-06 * x**25 - 0.00228179217863516 * x**24 - 2.677217254353905e-06 * x**23 + 0.004542592651664318 * x**22 + 2.6347295647342527e-06 * x**21 - 0.007234397705966803 * x**20 - 1.8663493006143868e-06 * x**19 + 0.009972816516565567 * x**18 + 9.617550364556154e-07 * x**17 - 0.01276272341599213 * x**16 - 3.6007510942816343e-07 * x**15 + 0.01602680048337211 * x**14 + 9.67421701921231e-08 * x**13 - 0.020491308786445353 * x**12 - 1.8191457001328036e-08 * x**11 + 0.027341546799716798 * x**10 + 2.294102880276948e-09 * x**9 - 0.03906230527402595 * x**8 - 1.8041351098748914e-10 * x**7 + 0.062499989531148784 * x**6 + 7.704618863288623e-12 * x**5 - 0.12499999970325369 * x**4 - 1.2485259903102903e-13 * x**3 + 0.4999999999966662 * x**2 - 1.5990608321253248e-16 * x + 1.0000000000000062 xn points: [-1.00000000e+00 -9.95018436e-01 -9.80109388e-01 -9.55423130e-01 -9.21380602e-01 -8.78456824e-01 -8.26594535e-01 -7.66940853e-01 -7.00001737e-01 -6.26449242e-01 -5.47346912e-01 -4.63811602e-01 -3.75756029e-01 -2.84184374e-01 -1.90817610e-01 -9.58244319e-02 3.08092939e-04 9.60133770e-02 1.91096670e-01 2.84656118e-01 3.75478213e-01 4.63390085e-01 5.47446717e-01 6.26587554e-01 6.99899772e-01 7.67019477e-01 8.26717268e-01 8.78408589e-01 9.21449111e-01 9.55557642e-01 9.80144681e-01 9.95014017e-01 1.00000000e+00] Converge iteration: 13 MAE of approximation: 6.439293542825908e-15 MAE of interpolation: 8.43769498715119e-15
f(x) = np.sqrt(1 + x**2), interval = [-1, 1] Polynomial degree = 33 Pn(x): - 5.181078788365545e-08 * x**33 - 1.3321749525623255e-05 * x**32 + 4.31455894180147e-07 * x**31 + 0.00012750473916276262 * x**30 - 1.6280542781625538e-06 * x**29 - 0.0005772085536438337 * x**28 + 3.6807123600937773e-06 * x**27 + 0.0016616838299461955 * x**26 - 5.554403664064107e-06 * x**25 - 0.003472824124203286 * x**24 + 5.899282534123683e-06 * x**23 + 0.005751970375207694 * x**22 - 4.530495320301755e-06 * x**21 - 0.008123305582579678 * x**20 + 2.5447598799953764e-06 * x**19 + 0.01045154330846434 * x**18 - 1.0456003985576917e-06 * x**17 - 0.012951809006089299 * x**16 + 3.1130301965754875e-07 * x**15 + 0.0160810834952024 * x**14 - 6.592517156033918e-08 * x**13 - 0.020502416670873706 * x**12 + 9.670039421072832e-09 * x**11 + 0.027343114983614726 * x**10 - 9.535521746838825e-10 * x**9 - 0.03906245036529897 * x**8 + 6.206150487032726e-11 * x**7 + 0.062499997634826845 * x**6 - 2.689601565192076e-12 * x**5 - 0.12499999994052566 * x**4 + 7.435220362923524e-14 * x**3 + 0.4999999999994083 * x**2 - 1.0223281568577735e-15 * x + 1.0000000000000009 xn points: [-1. -0.99564243 -0.98247114 -0.96054616 -0.930594 -0.89230487 -0.84642422 -0.79312427 -0.73380066 -0.66814138 -0.59727542 -0.51936239 -0.43923435 -0.35459549 -0.26628647 -0.17920723 -0.09169003 -0.00116206 0.08964935 0.17954842 0.26819794 0.35515354 0.43965364 0.51863414 0.59502861 0.66659294 0.73366773 0.79440017 0.84736347 0.89199182 0.93004339 0.96059738 0.98252233 0.99563769 1. ] Converge iteration: 12 MAE of approximation: 1.1102230246251565e-15 MAE of interpolation: 1.5543122344752192e-15
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 1 Pn(x): 0.0 * x + 0.75 xn points: [-1.000000e+00 6.123234e-17 1.000000e+00] Converge iteration: 1 MAE of approximation: 0.25 MAE of interpolation: 0.3333080820833966
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 3 Pn(x): 0.0 * x**3 - 0.5 * x**2 + 0.9571067811865475 xn points: [-1.00000000e+00 -6.43594250e-01 3.20493782e-17 6.43594250e-01 1.00000000e+00] Converge iteration: 2 MAE of approximation: 0.04289321881345254 MAE of interpolation: 0.058810161403041405
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 5 Pn(x): 7.388054129336184e-17 * x**5 + 0.34314575050761986 * x**4 - 3.724084782512868e-16 * x**3 - 0.8284271247461901 * x**2 + 2.98527936957925e-16 * x + 0.9926406871192852 xn points: [-1.00000000e+00 -8.40896410e-01 -4.55089864e-01 1.84466221e-16 4.55089864e-01 8.40896410e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 0.007359312880715008 MAE of interpolation: 0.01009616421068149
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 7 Pn(x): 2.596644951066546e-15 * x**7 - 0.23549801218287494 * x**6 - 5.205725810649876e-15 * x**5 + 0.6862915010152388 * x**4 + 3.1255496335428892e-15 * x**3 - 0.9507934888323639 * x**2 - 5.164687739595596e-16 * x + 0.9987373415291633 xn points: [-1.00000000e+00 -9.12555023e-01 -6.76096729e-01 -3.52633123e-01 -8.71210398e-16 3.52633123e-01 6.76096729e-01 9.12555023e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 0.0012626584708368416 MAE of interpolation: 0.0017316582509024903
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 9 Pn(x): 1.1053768886186341e-15 * x**9 + 0.16162028426708994 * x**8 - 3.800599003016773e-15 * x**7 - 0.5518061664992937 * x**6 + 4.415087639759901e-15 * x**5 + 0.8779182350224599 * x**4 - 1.908084837699068e-15 * x**3 - 0.9872990769016461 * x**2 + 1.8821931233730637e-16 * x + 0.9997833620556951 xn points: [-1.00000000e+00 -9.45139566e-01 -7.90032565e-01 -5.60194593e-01 -2.88019690e-01 1.31938632e-14 2.88019690e-01 5.60194593e-01 7.90032565e-01 9.45139566e-01 1.00000000e+00] Converge iteration: 5 MAE of approximation: 0.0002166379443051536 MAE of interpolation: 0.00029697069321810154
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 11 Pn(x): 5.522805938840053e-14 * x**11 - 0.11091862748416344 * x**10 - 1.6804399763531284e-13 * x**9 + 0.4341591960183262 * x**8 + 1.8818568551972561e-13 * x**7 - 0.7849253502025584 * x**6 - 9.370623121438417e-14 * x**5 + 0.9586263415454999 * x**4 + 1.9520629703357315e-14 * x**3 - 0.9969415598771043 * x**2 - 1.1841457617864474e-15 * x + 0.9999628308050065 xn points: [-1.00000000e+00 -9.62478562e-01 -8.54091108e-01 -6.86634449e-01 -4.77111271e-01 -2.43464426e-01 -1.03254313e-14 2.43464426e-01 4.77111271e-01 6.86634449e-01 8.54091108e-01 9.62478562e-01 1.00000000e+00] Converge iteration: 6 MAE of approximation: 3.716919499363591e-05 MAE of interpolation: 5.092378931248476e-05
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 13 Pn(x): - 2.696950200423258e-14 * x**13 + 0.07612251134667891 * x**12 + 9.867675729326568e-14 * x**11 - 0.3360210219884044 * x**10 - 1.4713663804129635e-13 * x**9 + 0.6829098229738833 * x**8 + 1.128209521567479e-13 * x**7 - 0.9109972523247033 * x**6 - 4.517787584116634e-14 * x**5 + 0.9872975750777019 * x**4 + 8.167170097353913e-15 * x**3 - 0.9992988806338445 * x**2 - 3.808636606722213e-16 * x + 0.9999936227743441 xn points: [-1.00000000e+00 -9.72753070e-01 -8.93113907e-01 -7.67153743e-01 -6.04147115e-01 -4.15130550e-01 -2.10856800e-01 -3.87708663e-13 2.10856800e-01 4.15130550e-01 6.04147115e-01 7.67153743e-01 8.93113907e-01 9.72753070e-01 1.00000000e+00] Converge iteration: 26 MAE of approximation: 6.377225655995744e-06 MAE of interpolation: 8.73139821189195e-06
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 15 Pn(x): 1.6445659882226542e-13 * x**15 - 0.052242232573219034 * x**14 - 6.591706632198592e-13 * x**13 + 0.2567294878399066 * x**12 + 1.1010624474321236e-12 * x**11 - 0.5807142537078835 * x**10 - 9.807343289748955e-13 * x**9 + 0.8467668219981983 * x**8 + 4.894775579553823e-13 * x**7 - 0.9670727256476409 * x**6 - 1.2958119728632616e-13 * x**5 + 0.9963779713949411 * x**4 + 1.4697479053594805e-14 * x**3 - 0.9998450693043026 * x**2 - 2.0789378228522948e-16 * x + 0.9999989058410581 xn points: [-1.00000000e+00 -9.79328502e-01 -9.18479248e-01 -8.20859483e-01 -6.91832361e-01 -5.38176702e-01 -3.67247390e-01 -1.85951664e-01 5.70504818e-12 1.85951664e-01 3.67247390e-01 5.38176702e-01 6.91832361e-01 8.20859483e-01 9.18479248e-01 9.79328502e-01 1.00000000e+00] Converge iteration: 13 MAE of approximation: 1.0941589420054854e-06 MAE of interpolation: 1.496934480704759e-06
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 17 Pn(x): - 1.885033097175123e-12 * x**17 + 0.03585340020835026 * x**16 + 8.389930275688646e-12 * x**15 - 0.19411796566627487 * x**14 - 1.5154922305347805e-11 * x**13 + 0.48439405210289993 * x**12 + 1.421126042245423e-11 * x**11 - 0.770506966353159 * x**10 - 7.308646680638259e-12 * x**9 + 0.9341552408870643 * x**8 + 1.970274803869992e-12 * x**7 - 0.9888353745511761 * x**6 - 2.2380022303529375e-13 * x**5 + 0.9990247131335785 * x**4 + 2.1149979966985545e-16 * x**3 - 0.9999667243052918 * x**2 + 7.253043839421917e-16 * x + 0.9999998122720046 xn points: [-1.00000000e+00 -9.83785585e-01 -9.35837808e-01 -8.58205023e-01 -7.54166661e-01 -6.28006699e-01 -4.84653875e-01 -3.29187563e-01 -1.66305865e-01 -1.01086507e-11 1.66305865e-01 3.29187563e-01 4.84653875e-01 6.28006699e-01 7.54166661e-01 8.58205023e-01 9.35837808e-01 9.83785585e-01 1.00000000e+00] Converge iteration: 21 MAE of approximation: 1.8772799603716805e-07 MAE of interpolation: 2.5661239855256923e-07
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 19 Pn(x): 6.091709398679744e-13 * x**19 - 0.024605883841010506 * x**18 - 2.173406853692892e-12 * x**17 + 0.1455244519334813 * x**16 + 2.4643728507769855e-12 * x**15 - 0.39750840833758505 * x**14 - 8.76150978828928e-14 * x**13 + 0.6874527324869103 * x**12 - 2.0330593731960866e-12 * x**11 - 0.8884043621199338 * x**10 + 1.784885045669786e-12 * x**9 + 0.9742542267556298 * x**8 - 6.760740069054788e-13 * x**7 - 0.9964688635897931 * x**6 + 1.1972173619858556e-13 * x**5 + 0.9997491201967955 * x**4 - 8.054813762986183e-15 * x**3 - 0.9999930134844944 * x**2 + 5.957292700484637e-17 * x + 0.999999967790968 xn points: [-1.00000000e+00 -9.86944111e-01 -9.48216245e-01 -8.85117518e-01 -7.99752989e-01 -6.94926639e-01 -5.73975392e-01 -4.40531812e-01 -2.98228314e-01 -1.50411983e-01 5.87426908e-11 1.50411983e-01 2.98228314e-01 4.40531812e-01 5.73975392e-01 6.94926639e-01 7.99752989e-01 8.85117518e-01 9.48216245e-01 9.86944111e-01 1.00000000e+00] Converge iteration: 41 MAE of approximation: 3.220903210809922e-08 MAE of interpolation: 4.398537034600025e-08
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 21 Pn(x): 3.749789399023531e-11 * x**21 + 0.01688680895651568 * x**20 - 1.7582082093107393e-10 * x**19 - 0.10831559903258313 * x**18 + 3.435508834413195e-10 * x**17 + 0.32168731393650174 * x**16 - 3.6100791173434594e-10 * x**15 - 0.602481989367763 * x**14 + 2.1898272259141287e-10 * x**13 + 0.8313416174408541 * x**12 - 7.594304562627012e-11 * x**11 - 0.9507929698570654 * x**10 + 1.3640416835054623e-11 * x**9 + 0.9906803471385631 * x**8 - 8.66134912188711e-13 * x**7 - 0.9989447847555935 * x**6 - 3.641716224132798e-14 * x**5 + 0.9999378266400598 * x**4 + 2.019152961751046e-15 * x**3 - 0.999998560047097 * x**2 + 3.943551359712117e-16 * x + 0.9999999944738038 xn points: [-1.00000000e+00 -9.89263065e-01 -9.57343482e-01 -9.05105631e-01 -8.33957577e-01 -7.45798131e-01 -6.42934345e-01 -5.27962594e-01 -4.03611438e-01 -2.72561600e-01 -1.37288872e-01 5.13463318e-10 1.37288873e-01 2.72561600e-01 4.03611438e-01 5.27962594e-01 6.42934345e-01 7.45798131e-01 8.33957577e-01 9.05105631e-01 9.57343482e-01 9.89263065e-01 1.00000000e+00] Converge iteration: 24 MAE of approximation: 5.526196389382676e-09 MAE of interpolation: 7.538666801920613e-09
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 23 Pn(x): 1.4763155713253274e-10 * x**23 - 0.011589273508760656 * x**22 - 8.356624203488015e-10 * x**21 + 0.08013071201440677 * x**20 + 2.052754374221767e-09 * x**19 - 0.25721497804532567 * x**18 - 2.867261295797559e-09 * x**17 + 0.5195800644878686 * x**16 + 2.506331669067031e-09 * x**15 - 0.7655802665895068 * x**14 - 1.4213991465406134e-09 * x**13 + 0.9175557590779226 * x**12 + 5.243557524593129e-10 * x**11 - 0.9800038871677645 * x**10 - 1.2267547432892625e-10 * x**9 + 0.9968357003084725 * x**8 + 1.7179700737147163e-11 * x**7 - 0.9996991852803634 * x**6 - 1.29875792964582e-12 * x**5 + 0.9999850624605756 * x**4 + 4.43305921238382e-14 * x**3 - 0.999999707757525 * x**2 - 2.892643689864363e-16 * x + 0.9999999990518545 xn points: [-1.00000000e+00 -9.91015350e-01 -9.64261714e-01 -9.20334984e-01 -8.60210399e-01 -7.85214063e-01 -6.96978908e-01 -5.97381917e-01 -4.88459266e-01 -3.72301561e-01 -2.50942476e-01 -1.26270199e-01 4.94904733e-10 1.26270200e-01 2.50942474e-01 3.72301564e-01 4.88459270e-01 5.97381915e-01 6.96978910e-01 7.85214064e-01 8.60210401e-01 9.20334982e-01 9.64261714e-01 9.91015335e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 9.481454510407161e-10 MAE of interpolation: 1.2919223468799146e-09
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 25 Pn(x): - 2.7329483014421744e-10 * x**25 + 0.007953620037502305 * x**24 + 1.8478261783090958e-09 * x**23 - 0.05896983728117126 * x**22 - 5.564550705048209e-09 * x**21 + 0.2035238671244252 * x**20 + 9.824232228159366e-09 * x**19 - 0.4416570978146356 * x**18 - 1.1260627160031554e-08 * x**17 + 0.6942333330770607 * x**16 + 8.763455340528942e-09 * x**15 - 0.8746809215308994 * x**14 - 4.703316250666645e-09 * x**13 + 0.9629512863842552 * x**12 + 1.732066553878338e-09 * x**11 - 0.9924153066681836 * x**10 - 4.2695015566082335e-10 * x**9 + 0.9989820823937481 * x**8 + 6.699821308554814e-11 * x**7 - 0.9999175878369556 * x**6 - 6.106256035552711e-12 * x**5 + 0.9999965038959863 * x**4 + 2.7051419068911455e-13 * x**3 - 0.9999999414557803 * x**2 - 3.670564977913931e-15 * x + 0.999999999837324 xn points: [-1.00000000e+00 -9.92371478e-01 -9.69628181e-01 -9.32193732e-01 -8.80764129e-01 -8.16290803e-01 -7.39956607e-01 -6.53139893e-01 -5.57367814e-01 -4.54255300e-01 -3.45434936e-01 -2.32486735e-01 -1.16887461e-01 3.13486537e-08 1.16887508e-01 2.32486739e-01 3.45434921e-01 4.54255276e-01 5.57367805e-01 6.53139886e-01 7.39956591e-01 8.16290811e-01 8.80764127e-01 9.32193731e-01 9.69628192e-01 9.92371479e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 1.6267609481701584e-10 MAE of interpolation: 2.213779159987439e-10
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 27 Pn(x): 1.1103634183645847e-09 * x**27 - 0.005458501263766263 * x**26 - 7.213600109605118e-09 * x**25 + 0.043199745208289356 * x**24 + 2.0396726225169878e-08 * x**23 - 0.15957078151018803 * x**22 - 3.2857736735934283e-08 * x**21 + 0.37058501500629787 * x**20 + 3.310464125328325e-08 * x**19 - 0.6204274685529033 * x**18 - 2.1486493516871796e-08 * x**17 + 0.8232142752583042 * x**16 + 8.84935044258294e-09 * x**15 - 0.9384717378396242 * x**14 - 2.1266363770272452e-09 * x**13 + 0.9845085097908137 * x**12 + 2.0512814423745673e-10 * x**11 - 0.9972873864695201 * x**10 + 2.6892360996379918e-11 * x**9 + 0.9996872953277576 * x**8 - 9.600339597081376e-12 * x**7 - 0.9999781764217646 * x**6 + 1.0120018373154965e-12 * x**5 + 0.9999991998682766 * x**4 - 4.788472302383841e-14 * x**3 - 0.9999999884019726 * x**2 + 1.1172867421670627e-15 * x + 0.999999999972089 xn points: [-1.00000000e+00 -9.93442425e-01 -9.73873207e-01 -9.41602332e-01 -8.97137975e-01 -8.41180584e-01 -7.74604349e-01 -6.98439425e-01 -6.13842688e-01 -5.22062628e-01 -4.24396440e-01 -3.22140860e-01 -2.16549541e-01 -1.08801637e-01 -4.81671108e-08 1.08801636e-01 2.16549535e-01 3.22140807e-01 4.24396406e-01 5.22062694e-01 6.13842911e-01 6.98439632e-01 7.74604540e-01 8.41180602e-01 8.97137824e-01 9.41602222e-01 9.73873179e-01 9.93442421e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 2.7910840305622742e-11 MAE of interpolation: 3.793054759171355e-11
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 29 Pn(x): 9.629372785193448e-09 * x**29 + 0.0037461156632508106 * x**28 - 7.049632800092354e-08 * x**27 - 0.031520627425053294 * x**26 + 2.3214704842763748e-07 * x**25 + 0.1241015829469677 * x**24 - 4.5400541737007973e-07 * x**23 - 0.3073491656979668 * x**22 + 5.861995971799496e-07 * x**21 + 0.5469672156079907 * x**20 - 5.252572797781226e-07 * x**19 - 0.7648605266760203 * x**18 + 3.339996424123059e-07 * x**17 + 0.9061111529956138 * x**16 - 1.5137526732017317e-07 * x**15 - 0.971944133149313 * x**14 + 4.8362545114021314e-08 * x**13 + 0.993913107478847 * x**12 - 1.0591842271465203e-08 * x**11 - 0.9990778397635202 * x**10 + 1.5108147139576384e-09 * x**9 + 0.9999076835122096 * x**8 - 1.2828563577266457e-10 * x**7 - 0.9999943881515099 * x**6 + 5.482345224285893e-12 * x**5 + 0.9999998203924663 * x**4 - 8.281490170699412e-14 * x**3 - 0.9999999977243846 * x**2 + 2.1314886727835664e-16 * x + 0.9999999999952109 xn points: [-1.00000000e+00 -9.94302885e-01 -9.77288201e-01 -9.49188480e-01 -9.10383001e-01 -8.61397495e-01 -8.02892212e-01 -7.35647355e-01 -6.60553127e-01 -5.78578143e-01 -4.90752840e-01 -3.98131376e-01 -3.01760228e-01 -2.02650387e-01 -1.01761501e-01 -4.68332451e-08 1.01761382e-01 2.02649714e-01 3.01758564e-01 3.98130532e-01 4.90753013e-01 5.78578844e-01 6.60553798e-01 7.35647665e-01 8.02892226e-01 8.61397190e-01 9.10382251e-01 9.49188249e-01 9.77288470e-01 9.94302919e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 4.78883599441815e-12 MAE of interpolation: 6.498579452340891e-12
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 31 Pn(x): 1.9145806694070463e-08 * x**31 - 0.002570938856970148 * x**30 - 1.548503384295047e-07 * x**29 + 0.02291789491633822 * x**28 + 5.614267436158983e-07 * x**27 - 0.09582568141907521 * x**26 - 1.2053837083047816e-06 * x**25 + 0.25224508327868267 * x**24 + 1.705306357638333e-06 * x**23 - 0.4761481957971526 * x**22 - 1.6737571567352983e-06 * x**21 + 0.7016987446364823 * x**20 + 1.1688004881099144e-06 * x**19 - 0.8660520438590101 * x**18 - 5.861400740158802e-07 * x**17 + 0.9537323808518932 * x**16 + 2.1064833131071715e-07 * x**15 - 0.9880067200637239 * x**14 - 5.3638449598668495e-08 * x**13 + 0.9977344992634682 * x**12 + 9.499885080245121e-09 * x**11 - 0.9997000667722871 * x**10 - 1.1457346075663846e-09 * x**9 + 0.9999736765548717 * x**8 + 9.264016735405875e-11 * x**7 - 0.9999985935390494 * x**6 - 4.944279489994315e-12 * x**5 + 0.9999999603628381 * x**4 + 1.5497529308485356e-13 * x**3 - 0.999999999557306 * x**2 - 1.6206359534627185e-15 * x + 0.9999999999991783 xn points: [-1.00000000e+00 -9.95003066e-01 -9.80080155e-01 -9.55387177e-01 -9.21249878e-01 -8.78025593e-01 -8.26254903e-01 -7.66523341e-01 -6.99532446e-01 -6.26033260e-01 -5.46849056e-01 -4.62837892e-01 -3.74859927e-01 -2.83781677e-01 -1.90419935e-01 -9.55726444e-02 1.83042048e-06 9.55748412e-02 1.90417815e-01 2.83778482e-01 3.74863003e-01 4.62841865e-01 5.46853954e-01 6.26035670e-01 6.99535192e-01 7.66524537e-01 8.26250555e-01 8.78022543e-01 9.21247123e-01 9.55387782e-01 9.80079328e-01 9.95003343e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 8.217870828275409e-13 MAE of interpolation: 1.113997782908882e-12
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 33 Pn(x): 1.2862993391312074e-07 * x**33 + 0.0017643271214183548 * x**32 - 1.0464529436022495e-06 * x**31 - 0.01660989771643992 * x**30 + 3.865010979757697e-06 * x**29 + 0.07351594428184206 * x**28 - 8.57549513882391e-06 * x**27 - 0.20506318769530407 * x**26 + 1.2747199264839838e-05 * x**25 + 0.40967358422208033 * x**24 - 1.3406278253115424e-05 * x**23 - 0.6359044489583953 * x**22 + 1.0272384852987734e-05 * x**21 + 0.8190437502429257 * x**20 - 5.820474597418893e-06 * x**19 - 0.9292031306326726 * x**18 + 2.4513996640577045e-06 * x**17 + 0.978655739321063 * x**16 - 7.656945863283916e-07 * x**15 - 0.9951554997152657 * x**14 + 1.7582787404510927e-07 * x**13 + 0.9991959222625426 * x**12 - 2.923136100692045e-08 * x**11 - 0.9999061584604848 * x**10 + 3.435362909391703e-09 * x**9 + 0.9999927196568849 * x**8 - 2.7458135537662835e-10 * x**7 - 0.999999655398869 * x**6 + 1.3910061905969173e-11 * x**5 + 0.9999999913835028 * x**4 - 3.8489858583402765e-13 * x**3 - 0.9999999999145466 * x**2 + 3.977250175796658e-15 * x + 0.9999999999998592 xn points: [-1.00000000e+00 -9.95585927e-01 -9.82383289e-01 -9.60518203e-01 -9.30259456e-01 -8.91875160e-01 -8.45766776e-01 -7.92424028e-01 -7.32352371e-01 -6.66187316e-01 -5.94576846e-01 -5.18253778e-01 -4.37835354e-01 -3.54134522e-01 -2.67803245e-01 -1.79568623e-01 -9.00676017e-02 9.85083226e-06 9.00799311e-02 1.79583898e-01 2.67802991e-01 3.54131762e-01 4.37834006e-01 5.18224935e-01 5.94562375e-01 6.66179847e-01 7.32313786e-01 7.92386014e-01 8.45745444e-01 8.91867625e-01 9.30270348e-01 9.60540626e-01 9.82390459e-01 9.95584286e-01 1.00000000e+00] Converge iteration: 15 MAE of approximation: 1.412203687323199e-13 MAE of interpolation: 1.9062529332813938e-13
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 35 Pn(x): - 8.091862178862234e-07 * x**35 - 0.001211090794066012 * x**34 + 6.692500019992804e-06 * x**33 + 0.012006799527699969 * x**32 - 2.5105881649431976e-05 * x**31 - 0.05608580105382031 * x**30 + 5.647020004901698e-05 * x**29 + 0.16530555593525323 * x**28 - 8.479985669795428e-05 * x**27 - 0.3487342902312828 * x**26 + 8.953998887856539e-05 * x**25 + 0.569606497904845 * x**24 - 6.813558295640282e-05 * x**23 - 0.7663268701821745 * x**22 + 3.760307306754622e-05 * x**21 + 0.8981203280987734 * x**20 - 1.4881552765993465e-05 * x**19 - 0.9650109683214027 * x**18 + 4.065124386494509e-06 * x**17 + 0.9907165998092204 * x**16 - 6.887001501477847e-07 * x**15 - 0.9981397758376462 * x**14 + 4.293558241860776e-08 * x**13 + 0.9997265464463925 * x**12 + 9.322758016428673e-09 * x**11 - 0.9999716542524012 * x**10 - 2.667979787053564e-09 * x**9 + 0.9999980421202319 * x**8 + 3.0035674862823074e-10 * x**7 - 0.9999999173401085 * x**6 - 1.7129679219070557e-11 * x**5 + 0.9999999981541289 * x**4 + 4.5229917547882507e-13 * x**3 - 0.9999999999836433 * x**2 - 3.815923945751643e-15 * x + 0.9999999999999762 xn points: [-1.00000000e+00 -9.96160705e-01 -9.84158431e-01 -9.65067451e-01 -9.37670171e-01 -9.03612802e-01 -8.62084343e-01 -8.14457385e-01 -7.60287477e-01 -7.00548555e-01 -6.35447206e-01 -5.65830766e-01 -4.92367011e-01 -4.15255393e-01 -3.35458413e-01 -2.53460988e-01 -1.69895898e-01 -8.50801754e-02 1.16660374e-04 8.52181204e-02 1.69888958e-01 2.53422840e-01 3.35447589e-01 4.15170932e-01 4.92171282e-01 5.65772808e-01 6.35397568e-01 7.00311649e-01 7.60083797e-01 8.14267686e-01 8.62056034e-01 9.03587501e-01 9.37532322e-01 9.65006515e-01 9.84172285e-01 9.96102706e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 2.4646951146678475e-14 MAE of interpolation: 3.2862601528904634e-14
f(x) = (1 + x**2)**-1, interval = [-1, 1] Polynomial degree = 37 Pn(x): - 6.8880630307470425e-06 * x**37 + 0.0008307056904590143 * x**36 + 6.308205268194034e-05 * x**35 - 0.008650964102616206 * x**34 - 0.0002653421131177172 * x**33 + 0.04253669475458026 * x**32 + 0.0006794752950237272 * x**31 - 0.13213996083125792 * x**30 - 0.001183703038674054 * x**29 + 0.2937697343460574 * x**28 + 0.0014848801287852035 * x**27 - 0.504377891999631 * x**26 - 0.0013847209373312218 * x**25 + 0.7091527983462134 * x**24 + 0.00097708163714021 * x**23 - 0.860487370102674 * x**22 - 0.0005259339030616127 * x**21 + 0.946281940722491 * x**20 + 0.00021609910868341687 * x**19 - 0.9836752789595459 * x**18 - 6.736330978145996e-05 * x**17 + 0.9961559463899518 * x**16 + 1.571920378453776e-05 * x**15 - 0.9993141719742075 * x**14 - 2.6856797153318702e-06 * x**13 + 0.9999099571156161 * x**12 + 3.246898750048676e-07 * x**11 - 0.9999916402497389 * x**10 - 2.6357487263911715e-08 * x**9 + 0.9999994815528555 * x**8 + 1.321161527059084e-09 * x**7 - 0.9999999803052828 * x**6 - 3.530035301530588e-11 * x**5 + 0.9999999996035671 * x**4 + 3.637720125800867e-13 * x**3 - 0.9999999999968291 * x**2 + 4.2180750434654086e-16 * x + 0.9999999999999958 xn points: [-1.00000000e+00 -9.96534827e-01 -9.85979627e-01 -9.68156521e-01 -9.43679088e-01 -9.12959926e-01 -8.75364929e-01 -8.32841365e-01 -7.83498420e-01 -7.29618033e-01 -6.70181397e-01 -6.07071838e-01 -5.39711471e-01 -4.68984595e-01 -3.94666080e-01 -3.18551026e-01 -2.40229440e-01 -1.61107894e-01 -8.05780251e-02 -6.65310998e-05 8.12623231e-02 1.62049862e-01 2.41818617e-01 3.19813617e-01 3.95490575e-01 4.69304613e-01 5.40091133e-01 6.07695584e-01 6.70503753e-01 7.29985574e-01 7.83895462e-01 8.33329037e-01 8.76593127e-01 9.14002500e-01 9.44161823e-01 9.68155439e-01 9.85541121e-01 9.96390527e-01 1.00000000e+00] Converge iteration: 50 MAE of approximation: 4.6629367034256575e-15 MAE of interpolation: 5.88418203051333e-15
Statistics¶
In [9]:
df.dropna(how="all", inplace=True)
df
Out[9]:
| $e^x$ | $e^{1+x^2}$ | $\ln{(1+x^2)}$ | $\sqrt{1+x^2}$ | $\frac{1}{1+x^2}$ | |
|---|---|---|---|---|---|
| n | |||||
| 1 | 2.788016e-01 | 2.335387e+00 | 3.465736e-01 | 2.071068e-01 | 2.499747e-01 |
| 3 | 5.528370e-03 | 2.879569e-01 | 2.982624e-02 | 8.882790e-03 | 4.289322e-02 |
| 5 | 4.520551e-05 | 2.380134e-02 | 3.423981e-03 | 7.638368e-04 | 7.358156e-03 |
| 7 | 1.998253e-07 | 1.480897e-03 | 4.415460e-04 | 8.197651e-05 | 1.262658e-03 |
| 9 | 5.517249e-10 | 7.383511e-05 | 6.071410e-05 | 9.869364e-06 | 2.165439e-04 |
| 11 | 1.040723e-12 | 3.070489e-06 | 8.691045e-06 | 1.271337e-06 | 3.716919e-05 |
| 13 | NaN | 1.095056e-07 | 1.279333e-06 | 1.715430e-07 | 6.374165e-06 |
| 15 | NaN | 3.418386e-09 | 1.921678e-07 | 2.392230e-08 | 1.094159e-06 |
| 17 | NaN | 9.487788e-11 | 2.933012e-08 | 3.423567e-09 | 1.877271e-07 |
| 19 | NaN | NaN | 4.520698e-09 | 4.988316e-10 | 3.220903e-08 |
| 21 | NaN | NaN | 7.070591e-10 | 7.405032e-11 | 5.525997e-09 |
| 23 | NaN | NaN | 1.112376e-10 | 1.111800e-11 | 9.481455e-10 |
| 25 | NaN | NaN | 1.762368e-11 | 1.688649e-12 | 1.620220e-10 |
| 27 | NaN | NaN | 2.807810e-12 | 2.584599e-13 | 2.791084e-11 |
| 29 | NaN | NaN | 4.499734e-13 | 4.041212e-14 | 4.787837e-12 |
| 31 | NaN | NaN | 7.235185e-14 | 6.217249e-15 | 8.217871e-13 |
| 33 | NaN | NaN | NaN | 1.110223e-15 | 1.411093e-13 |
| 35 | NaN | NaN | NaN | NaN | 2.398082e-14 |
| 37 | NaN | NaN | NaN | NaN | 4.662937e-15 |
In [10]:
x_length = df.index[-1]
df.plot(
figsize=(12, 6),
title=f"log-Max-Error Versus Degree with Interval {interval}",
logy=True,
style=["rd-", "d--", "d-", "d-", "d-"],
xlim=(0.5, x_length + 0.5),
ylim=[5 * 10**-16, 1],
xticks=np.arange(1, x_length + 1, 2),
yticks=[10**-i for i in range(16)],
fontsize=12,
xlabel="Polynomial Degree",
ylabel="log-Max-Error",
)
plt.savefig("./images/log-Max-Error_Versus_Degree.png", dpi=300)
plt.show()
In [ ]: